HTML Email এর জন্য Practical উদাহরণ

Java Technologies - জাভা মেইল এপিআই (JavaMail API) - HTML এবং Rich Content Email প্রেরণ
151

JavaMail API ব্যবহার করে HTML ই-মেইল পাঠানোর একটি বাস্তব উদাহরণ এখানে দেয়া হল। HTML ই-মেইল পাঠাতে হলে আপনাকে মেইলের কন্টেন্ট text/html টাইপ হিসাবে সেট করতে হবে, যাতে ই-মেইলটি HTML হিসেবে রেন্ডার হয় এবং আপনি স্টাইল, ইমেজ, লিঙ্ক, টেবিল, বাটন ইত্যাদি যোগ করতে পারেন।

HTML Email পাঠানোর উদাহরণ:

এখানে আমরা একটি HTML ই-মেইল তৈরি করবো যা একটি বেসিক HTML কনটেন্ট, লিঙ্ক, ইমেজ এবং টেবিল ধারণ করবে।

প্রাক-প্রস্তুতি:

  1. SMTP সার্ভারের ঠিকানা: Gmail-এর SMTP সার্ভার ব্যবহার করা হবে (আপনি অন্য সার্ভারও ব্যবহার করতে পারেন)।
  2. পাসওয়ার্ড বা অ্যাপ পাসওয়ার্ড: যদি Gmail ব্যবহার করেন, তবে আপনাকে App Password ব্যবহার করতে হতে পারে (কারণ সাধারণ পাসওয়ার্ড ব্যবহার করলে অ্যাকাউন্টের সুরক্ষা সমস্যা হতে পারে)।

HTML ই-মেইল পাঠানোর কোড:

import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.util.Properties;

public class SendHtmlEmail {

    public static void main(String[] args) {
        // SMTP সার্ভারের জন্য প্রপার্টি সেট করা
        Properties properties = new Properties();
        properties.put("mail.smtp.host", "smtp.gmail.com"); // SMTP সার্ভার (Gmail)
        properties.put("mail.smtp.port", "587"); // SMTP পোর্ট (TLS এর জন্য 587)
        properties.put("mail.smtp.auth", "true"); // অথেন্টিকেশন সক্রিয় করা
        properties.put("mail.smtp.starttls.enable", "true"); // TLS সক্রিয় করা

        // JavaMail সেশন তৈরি করা
        Session session = Session.getInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("your-email@gmail.com", "your-app-password");
            }
        });

        try {
            // মেইল মেসেজ তৈরি করা
            Message message = new MimeMessage(session);

            // প্রেরকের ঠিকানা
            message.setFrom(new InternetAddress("your-email@gmail.com"));

            // প্রাপকের ঠিকানা
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));

            // মেইলের বিষয়
            message.setSubject("HTML Email from JavaMail API");

            // HTML কনটেন্ট তৈরি
            String htmlContent = "<h1>Welcome to JavaMail API</h1>"
                    + "<p>This is a <b>HTML</b> email sent using JavaMail API.</p>"
                    + "<p><a href='http://www.example.com'>Click here</a> to visit our website.</p>"
                    + "<p>Below is a table with sample data:</p>"
                    + "<table border='1'>"
                    + "<tr><th>Serial No</th><th>Name</th><th>Age</th></tr>"
                    + "<tr><td>1</td><td>John Doe</td><td>25</td></tr>"
                    + "<tr><td>2</td><td>Jane Smith</td><td>30</td></tr>"
                    + "</table>"
                    + "<img src='cid:image1'/>"; // CID ব্যবহার করে inline image

            // MimeBodyPart ব্যবহার করে HTML কনটেন্ট যোগ করা
            MimeBodyPart mimeBodyPart = new MimeBodyPart();
            mimeBodyPart.setContent(htmlContent, "text/html");

            // MIME multipart তৈরি এবং MIME body part যোগ করা
            MimeMultipart mimeMultipart = new MimeMultipart();
            mimeMultipart.addBodyPart(mimeBodyPart);

            // ইমেজ অ্যাটাচমেন্ট যোগ করা (inline image)
            MimeBodyPart imagePart = new MimeBodyPart();
            DataSource fds = new FileDataSource("path/to/your/image.jpg");
            imagePart.setDataHandler(new DataHandler(fds));
            imagePart.setHeader("Content-ID", "<image1>");

            mimeMultipart.addBodyPart(imagePart);

            // MIME multipart কনটেন্ট সেট করা
            message.setContent(mimeMultipart);

            // মেইল পাঠানো
            Transport.send(message);

            System.out.println("HTML Email sent successfully!");

        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

কোডের বিস্তারিত ব্যাখ্যা:

  1. SMTP প্রপার্টি কনফিগারেশন:
    • mail.smtp.host: SMTP সার্ভারের ঠিকানা। এখানে Gmail ব্যবহার করা হয়েছে।
    • mail.smtp.port: পোর্ট নম্বর। Gmail এর জন্য TLS সক্রিয় করার জন্য 587 পোর্ট।
    • mail.smtp.auth: SMTP সার্ভারে অথেন্টিকেশন সক্ষম করা।
    • mail.smtp.starttls.enable: TLS এনক্রিপশন সক্ষম করা।
  2. Session:
    • Session.getInstance(properties): JavaMail সেশন তৈরি করা এবং সেটির সাথে প্রপার্টি কনফিগারেশন অ্যাসাইন করা।
    • Authenticator: প্রেরকের ই-মেইল এবং পাসওয়ার্ড ব্যবহারের জন্য অথেন্টিকেশন সন্নিবেশিত করা।
  3. MimeMessage:
    • message.setFrom(): প্রেরকের ই-মেইল ঠিকানা সেট করা।
    • message.setRecipients(): প্রাপকের ই-মেইল ঠিকানা সেট করা।
    • message.setSubject(): মেইলের বিষয় সেট করা।
  4. HTML কনটেন্ট:
    • HTML কনটেন্ট একটি স্ট্রিং হিসেবে তৈরি করা হয়েছে। এতে টেক্সট, লিঙ্ক, টেবিল, এবং একটি ইমেজ (CID ব্যবহার করে) অন্তর্ভুক্ত রয়েছে।
  5. MimeMultipart:
    • MimeMultipart হল একটি কন্টেইনার যা একাধিক MimeBodyPart ধারণ করে, যেখানে প্রতিটি MimeBodyPart একটি অংশের কন্টেন্ট (যেমন HTML টেক্সট, অ্যাটাচমেন্ট, ইমেজ) ধারণ করে।
  6. Inline ইমেজ (CID):
    • src='cid:image1': HTML কনটেন্টে inline ইমেজ ব্যবহার করা হয়েছে। cid (Content-ID) এর মাধ্যমে ইমেজটি সন্নিবেশিত করা হয়েছে এবং এর সাথে একটি MimeBodyPart যোগ করা হয়েছে।
  7. Transport.send():
    • মেইল পাঠানোর জন্য Transport.send(message) ব্যবহার করা হয়েছে।

ইমেজ যোগ করা:

  • ইমেজটি ইনলাইন অ্যাটাচমেন্ট হিসেবে যোগ করা হয়েছে। cid:image1 এবং Content-ID হেডারের মাধ্যমে ইমেজটি মেইলের মধ্যে রেন্ডার করা হয়।

কিছু অতিরিক্ত বৈশিষ্ট্য:

  1. টেবিল এবং লিঙ্ক: HTML টেবিল এবং লিঙ্ক পাঠানোর জন্য, HTML কনটেন্টে <table>, <a> ট্যাগ ব্যবহার করা হয়েছে।
  2. CSS স্টাইল: আপনি HTML ই-মেইলে CSS স্টাইলও অন্তর্ভুক্ত করতে পারেন। উদাহরণস্বরূপ, <style> ট্যাগ ব্যবহার করে ই-মেইলের ডিজাইন কাস্টমাইজ করা যায়।

JavaMail API ব্যবহার করে HTML ই-মেইল পাঠানো একটি শক্তিশালী উপায় যার মাধ্যমে আপনি সহজেই সুন্দর ডিজাইন করা ই-মেইল পাঠাতে পারেন। আপনি HTML কনটেন্ট, টেবিল, লিঙ্ক, স্টাইল এবং ইমেজসহ ই-মেইল তৈরি করতে পারেন এবং JavaMail API এর মাধ্যমে তা প্রেরণ করতে পারেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...